import json
import sys
from collections import defaultdict

def analyze_json_data(json_data):
    # 用于存储统计结果的嵌套字典
    dataset_stats = defaultdict(lambda: defaultdict(int))
    
    # 遍历JSON数据中的每个项目
    for item in json_data:
        dataset = item.get('dataset', 'unknown')
        parent_category = item.get('父级分类名称', 'unknown')
        
        # 增加对应计数器
        dataset_stats[dataset][parent_category] += 1
    
    return dataset_stats

def main():
    try:
        # 默认文件路径 - 可直接修改此处来更改文件路径
        default_file_path = "final_dataset_gongzhuang.json"
        
        # 检查命令行参数是否包含JSON文件路径
        if len(sys.argv) >= 2:
            file_path = sys.argv[1]
            print(f"使用命令行指定的文件: {file_path}")
        else:
            file_path = default_file_path
            print(f"使用默认文件路径: {file_path}")
        
        # 读取JSON文件
        with open(file_path, 'r', encoding='utf-8') as file:
            json_data = json.load(file)
        
        # 分析数据
        stats = analyze_json_data(json_data)
        
        # 输出统计结果
        print("\n统计结果:")
        for dataset, categories in stats.items():
            print(f"\n数据集: {dataset}")
            for category, count in categories.items():
                print(f"  父级分类名称: {category} - 数量: {count}")
    
    except FileNotFoundError:
        print(f"错误: 文件 '{file_path}' 未找到")
        sys.exit(1)
    except json.JSONDecodeError:
        print(f"错误: 文件 '{file_path}' 不是有效的JSON格式")
        sys.exit(1)
    except Exception as e:
        print(f"发生未知错误: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main()    